package com.ruoyi.system.service;

import java.sql.SQLException;
import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.domain.ShipmentOrder;
import com.ruoyi.system.dto.ShipmentOrderDTO;
import com.ruoyi.system.vo.ShipmentOrderVO;

/**
 * 出库单Service接口
 * 
 * @author ruoyi
 * @date 2024-12-12
 */
public interface IShipmentOrderService 
{
    /**
     * 查询出库单
     * 
     * @param id 出库单主键
     * @return 出库单
     */
    public ShipmentOrderDTO selectShipmentOrderById(String id);

    /**
     * 查询出库单列表
     * 
     * @param shipmentOrder 出库单
     * @return 出库单集合
     */
    public List<ShipmentOrderDTO> selectShipmentOrderList(ShipmentOrderVO shipmentOrder);

    /**
     * 新增出库单
     * 
     * @param shipmentOrder 出库单
     * @return 结果
     */
    public AjaxResult insertShipmentOrder(ShipmentOrderVO shipmentOrder) throws SQLException;

    /**
     * 修改出库单
     * 
     * @param shipmentOrder 出库单
     * @return 结果
     */
    public AjaxResult updateShipmentOrder(ShipmentOrderVO shipmentOrder) throws SQLException;

    /**
     * 批量删除出库单
     * 
     * @param id 需要删除的出库单主键集合
     * @return 结果
     */
    public int deleteShipmentOrderByIds(String id);

    /**
     * 删除出库单信息
     * 
     * @param id 出库单主键
     * @return 结果
     */
    public int deleteShipmentOrderById(Long id);

    /**
     * 修改出库单信息
     *
     * @param shipmentOrder 出库单主键
     * @return 结果
     */
    public AjaxResult updateShipmentOrderByShipmentOrderNo(ShipmentOrderVO shipmentOrder) throws SQLException;

}
